(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
a(f, a(f, x)) → a(x, x)
a(h, x) → a(f, a(g, a(f, x)))
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
a(f, a(f, z0)) → a(z0, z0)
a(h, z0) → a(f, a(g, a(f, z0)))
Tuples:
A(f, a(f, z0)) → c(A(z0, z0))
A(h, z0) → c1(A(f, a(g, a(f, z0))), A(g, a(f, z0)), A(f, z0))
S tuples:
A(f, a(f, z0)) → c(A(z0, z0))
A(h, z0) → c1(A(f, a(g, a(f, z0))), A(g, a(f, z0)), A(f, z0))
K tuples:none
Defined Rule Symbols:
a
Defined Pair Symbols:
A
Compound Symbols:
c, c1
(3) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
A(
h,
z0) →
c1(
A(
f,
a(
g,
a(
f,
z0))),
A(
g,
a(
f,
z0)),
A(
f,
z0)) by
A(h, a(f, z0)) → c1(A(f, a(g, a(z0, z0))), A(g, a(f, a(f, z0))), A(f, a(f, z0)))
A(h, x0) → c1
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
a(f, a(f, z0)) → a(z0, z0)
a(h, z0) → a(f, a(g, a(f, z0)))
Tuples:
A(f, a(f, z0)) → c(A(z0, z0))
A(h, a(f, z0)) → c1(A(f, a(g, a(z0, z0))), A(g, a(f, a(f, z0))), A(f, a(f, z0)))
A(h, x0) → c1
S tuples:
A(f, a(f, z0)) → c(A(z0, z0))
A(h, a(f, z0)) → c1(A(f, a(g, a(z0, z0))), A(g, a(f, a(f, z0))), A(f, a(f, z0)))
A(h, x0) → c1
K tuples:none
Defined Rule Symbols:
a
Defined Pair Symbols:
A
Compound Symbols:
c, c1, c1
(5) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 3 trailing nodes:
A(f, a(f, z0)) → c(A(z0, z0))
A(h, x0) → c1
A(h, a(f, z0)) → c1(A(f, a(g, a(z0, z0))), A(g, a(f, a(f, z0))), A(f, a(f, z0)))
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
a(f, a(f, z0)) → a(z0, z0)
a(h, z0) → a(f, a(g, a(f, z0)))
Tuples:none
S tuples:none
K tuples:none
Defined Rule Symbols:
a
Defined Pair Symbols:none
Compound Symbols:none
(7) SIsEmptyProof (EQUIVALENT transformation)
The set S is empty
(8) BOUNDS(O(1), O(1))